package com.ssy.lingxi.platform.template.service.service.mobile;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.template.service.entity.door.MemberShop;
import com.ssy.lingxi.platform.template.service.model.dto.common.CollectDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.IdDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.MemberIdAndRoleIdDTO;
import com.ssy.lingxi.platform.template.service.model.dto.mobile.MemberShopInGoodsListMobileDTO;
import com.ssy.lingxi.platform.template.service.model.dto.mobile.MemberShopMainMobileDTO;
import com.ssy.lingxi.platform.template.service.model.qo.MemberShopMobileQO;
import com.ssy.lingxi.platform.template.service.model.vo.mobile.MemberShopInGoodsListMobileVO;
import com.ssy.lingxi.platform.template.service.model.vo.mobile.MemberShopListMobileVO;
import com.ssy.lingxi.platform.template.service.model.vo.mobile.MemberShopMainMobileVO;
import com.ssy.lingxi.report.api.vo.response.PopularShopVO;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * @author fhj
 * @version 2.0.0
 * @menu mobile - 会员店铺 - 业务处理层
 * @date 2020/12/11
 */
public interface MemberShopMobileService {

    Wrapper<MemberShopMainMobileVO> memberShopMain(MemberShopMainMobileDTO dto, UserLoginCacheDTO user);

    Wrapper<PageData<MemberShopListMobileVO>> memberShopList(MemberShopMobileQO qo, Long shopId);

    Wrapper<List<MemberShopListMobileVO>> popularStore(Long shopId, String provinceCode, String cityCode);

    Wrapper<List<MemberShopInGoodsListMobileVO>> memberShopInGoodsList(MemberShopInGoodsListMobileDTO dto);

    Wrapper<MemberShopMainMobileVO> findByMemberIdAndRoleId(MemberIdAndRoleIdDTO dto, UserLoginCacheDTO user);

    Wrapper<MemberShop> findById(IdDTO dto);

    Wrapper<PageData<MemberShop>> collectList(PageVO dto, UserLoginCacheDTO user);

    Wrapper<Void> collect(CollectDTO dto, UserLoginCacheDTO user);

    Wrapper<PageData<MemberShop>> newAddStore(PageVO dto);

    Wrapper<List<PopularShopVO>> popularStoreMsg(Long shopId);
}
